Ordination analysis
Full examples for standard ordination techniques applied to phyloseq data, based on the phyloseq ordination tutorial. For handy wrappers for some common ordination tasks in microbiome analysis, see landscaping examples
Load example data:
library(microbiome)
library(phyloseq)
library(ggplot2)
data(dietswap)
pseq <- dietswap
# Convert to compositional data
pseq.rel <- microbiome::transform(pseq, "compositional")
# Pick core taxa with with the given prevalence and detection limits
pseq.core <- core(pseq.rel, detection = .1/100, prevalence = 90/100)
# Use relative abundances for the core
pseq.core <- microbiome::transform(pseq.core, "compositional")Sample ordination
Project the samples with the given method and dissimilarity measure.
Multidimensional scaling (MDS / PCoA)
<<<<<<< HEADplot_ordination(pseq, ord, color = "nationality") +
geom_point(size = 5)plot_ordination(pseq, ord, color = "nationality") +
geom_point(size = 5)Canonical correspondence analysis (CCA)
<<<<<<< HEAD# With samples
pseq.cca <- ordinate(pseq, "CCA")
p <- plot_ordination(pseq, pseq.cca,
type = "samples", color = "nationality")
p <- p + geom_point(size = 4)
print(p)
# With taxa:
p <- plot_ordination(pseq, pseq.cca,
type = "taxa", color = "Phylum")
p <- p + geom_point(size = 4)
print(p)# With samples
pseq.cca <- ordinate(pseq, "CCA")
p <- plot_ordination(pseq, pseq.cca,
type = "samples", color = "nationality")
p <- p + geom_point(size = 4)
print(p)
# With taxa:
p <- plot_ordination(pseq, pseq.cca,
type = "taxa", color = "Phylum")
p <- p + geom_point(size = 4)
print(p)# With samples
pseq.cca <- ordinate(pseq, "CCA")
p <- plot_ordination(pseq, pseq.cca,
type = "samples", color = "nationality")
p <- p + geom_point(size = 4)
print(p)
# With taxa:
p <- plot_ordination(pseq, pseq.cca,
type = "taxa", color = "Phylum")
p <- p + geom_point(size = 4)
print(p)Split plot
<<<<<<< HEADplot_ordination(pseq, pseq.cca,
type = "split", shape = "nationality",
color = "Phylum", label = "nationality")plot_ordination(pseq, pseq.cca,
type = "split", shape = "nationality",
color = "Phylum", label = "nationality")plot_ordination(pseq, pseq.cca,
type = "split", shape = "nationality",
color = "Phylum", label = "nationality")t-SNE
t-SNE is a popular new ordination technique.
<<<<<<< HEADlibrary(vegan)
library(microbiome)
library(Rtsne) # Load package
set.seed(423542)
method <- "tsne"
trans <- "hellinger"
distance <- "euclidean"
# Distance matrix for samples
ps <- microbiome::transform(pseq, trans)
# Calculate sample similarities
dm <- vegdist(otu_table(ps), distance)
# Run TSNE
tsne_out <- Rtsne(dm, dims = 2)
proj <- tsne_out$Y
rownames(proj) <- rownames(otu_table(ps))
library(ggplot2)
p <- plot_landscape(proj, legend = T, size = 1)
print(p)library(vegan)
library(microbiome)
library(Rtsne) # Load package
set.seed(423542)
method <- "tsne"
trans <- "hellinger"
distance <- "euclidean"
# Distance matrix for samples
ps <- microbiome::transform(pseq, trans)
# Calculate sample similarities
dm <- vegdist(otu_table(ps), distance)
# Run TSNE
tsne_out <- Rtsne(dm, dims = 2)
proj <- tsne_out$Y
rownames(proj) <- rownames(otu_table(ps))
library(ggplot2)
p <- plot_landscape(proj, legend = T, size = 1)
print(p)library(vegan)
library(microbiome)
library(Rtsne) # Load package
set.seed(423542)
method <- "tsne"
trans <- "hellinger"
distance <- "euclidean"
# Distance matrix for samples
ps <- microbiome::transform(pseq, trans)
# Calculate sample similarities
dm <- vegdist(otu_table(ps), distance)
# Run TSNE
tsne_out <- Rtsne(dm, dims = 2)
proj <- tsne_out$Y
rownames(proj) <- rownames(otu_table(ps))
library(ggplot2)
p <- plot_landscape(proj, legend = T, size = 1)
print(p)